A compiler is computer software that transforms computer code written in one programming language (e.g., a software program containing source code) into another programming language (e.g., a machine language program containing machine code). An interpreter is a computer program that directly executes instructions written in a programming or scripting language (e.g., source code), without requiring the instructions to have been previously compiled into a machine language program.